<?php
/*
Autor: Jonathan Vindas Abarca
Fecha: 21/11/2012
Descripción: Este archivo contiene la declaración de la clase controladora de clientes.
Bitacora de modificaciones:
<
    Autor: 
    Fecha: 
    Descripción: 
>
*/

    function agregarClientesControlador() 
    {        
        require '../modelos/clientesModelo.php';        
        require_once 'dataControlador.php';
        $bandera = false;  
        require_once '../FirePHPCore/FirePHP.class.php';
        $firephp = FirePHP::getInstance(true);                        
        $firephp->log($_POST['hddAccion'] , 'accion');
        try 
        {                        
            if ($_POST['hddAccion'] == 'agregarCliente') 
            {                
                /*if(buscarClienteDynamicsAX($_POST['txtCodigoCliente'],$_POST['cmbCompania'],$_POST['txtNombreCliente'])==false)
                {*/
                $firephp->log($_POST['txtCodigoCliente'], 'codigo cliente');
                $firephp->log($_POST['cmbCompania'], 'compania');
                $firephp->log($_POST['txtNombreCliente'], 'nombre cliente');
                $firephp->log($_POST['txtDireccionEnvio'], 'dir envio');
                $firephp->log($_POST['txtDireccionPuerto'], 'dir puerto');
                if(encontrarClienteDuplicado($_POST['txtCodigoCliente'],$_POST['cmbCompania'])==false)
                {                                
                    agregarClientes($_POST['txtCodigoCliente'], $_POST['cmbCompania'],$_POST['txtNombreCliente'],
                            $_POST['txtDireccionEnvio'],$_POST['txtDireccionPuerto']);
                    $bandera='Agrega';                    
                    $firephp->log($bandera, 'Resultado Bandera');
                }
                else
                {
                    $bandera='ExisteCliente';
                    $firephp->log($bandera, 'Resultado Bandera');
                }                
                /*}
                else 
                {
                    $bandera='ExisteClienteAX';
                }*/
            }
            if ($_POST['hddAccion'] == 'modificarCliente') 
            {
                if(encontrarClienteDuplicado($_POST['hddCodigoCliente'],$_POST['hddCodigoCompania'])==true)
                {                                 
                    modificarClienteModelo($_POST['hddCodigoCliente'],$_POST['hddCodigoCompania'],$_POST['txtNombreCliente'],$_POST['txtDireccionEnvio'],$_POST['txtDireccionPuerto']);
                    $bandera='Modifica';                    
                }                
            }
            /*$accion = 'agregarPrecio';
            require 'FacturasExportacion/agregarCliente.php';
            mensajeConfirmacionClientes($bandera);*/
            
            mensajeConfirmacionClientes($bandera);
            $items = buscarClientes();        
            $total_registros =sizeof($items);                    
            require 'FacturasExportacion/listarClientes.php';  
        } 
        catch (Exception $e) 
        {
            echo 'Excepción capturada: ', $e->getMessage(), "\n";
        }
    }
    
    function eliminarClientes() 
    {
        require_once 'dataControlador.php';
        require '../modelos/clientesModelo.php';
        require '../modelos/formatosModelo.php';
        require_once('FirePHPCore/FirePHP.class.php');
        $firephp = FirePHP::getInstance(true);
        if(validarPermisos('eliminarClienteModelo'))
        {
            $existeFormato=validarExisteDependeciaFormatoConCliente($_GET['codigoCliente']);
            $existeContrato=validarExisteDependeciaContratoConCliente($_GET['codigoCliente'],$_GET['codigoCompania']);
             $firephp->log($existeFormato,"formato");
             $firephp->log($existeContrato,"contrato");
            if(validarExisteDependeciaContratoConCliente($_GET['codigoCliente'],$_GET['codigoCompania'])==false)
            {
                eliminarClienteModelo($_GET['codigoCliente'],$_GET['codigoCompania']);
                $bandera='Elimina';                        
            }
            else
            {
                $bandera='contratosAsociados';                            
            }      
            if(validarExisteDependeciaFormatoConCliente($_GET['codigoCliente'])==false)
            {
                eliminarClienteModelo($_GET['codigoCliente'],$_GET['codigoCompania']);
                $bandera='Elimina';  
            }
            else
            {
                $bandera='formatosAsociados';                            
            }
        }
        else
        {
            $bandera='SinPermisos';                      
        }                                
        //listarClientes();
        mensajeConfirmacionClientes($bandera);
        $items = buscarClientes();        
        $total_registros =sizeof($items);                    
        require 'FacturasExportacion/listarClientes.php';  
    }       

    function listarClientes() 
    {        
        require_once '../modelos/clientesModelo.php';   
        require_once 'dataControlador.php';        
        if(validarPermisos('buscarClientes'))
        {            
            $items = buscarClientes();        
            $total_registros =sizeof($items);                    
            require 'FacturasExportacion/listarClientes.php';        
        }        
        else
        {
            $items = null;                       
            $total_registros =sizeof($items);                    
            require 'FacturasExportacion/listarClientes.php';        
            mensajeConfirmacionClientes('SinPermisos'); 
        }        
        /*
        require_once('FirePHPCore/FirePHP.class.php');        
        require_once '../modelos/clientesModelo.php';                
        require_once 'dataControlador.php';                
        $firephp = FirePHP::getInstance(true);       
        $items = buscarClientes();        
        $firephp->log($items, "clientes");
        $total_registros =sizeof($items);                    
        require 'FacturasExportacion/listarClientes.php';        */
    }
    
    function listarClientesSegunCompania()
    {
        require_once('FirePHPCore/FirePHP.class.php');        
        require_once '../modelos/clientesModelo.php';                
        require_once 'dataControlador.php';                
        $firephp = FirePHP::getInstance(true); 
        $codigoCompaniaCliente=$_GET["codigoCompaniaCliente"];                                    
        $items = buscarClientesSegunCompaniaModelo($codigoCompaniaCliente);                    
        $firephp->log($items, "clientes");
        $total_registros =sizeof($items);                    
        require 'FacturasExportacion/listarClientes.php';        
    }
    
    function mensajeConfirmacionClientes($bandera) 
    {                
        try 
        {
            if($bandera=='Agrega')
            {
                ?>
                <script type="text/javascript">                
                alert("Se agrego el cliente satisfactoriamente.");
                </script>
                <?php
            }
            elseif ($bandera=='Modifica') 
            {            
                ?>
                <script type="text/javascript">                
                alert("Se modifico el cliente satisfactoriamente.");
                </script>
                <?php        
            }
            elseif ($bandera=='Elimina') 
            {        
                ?>
                <script type="text/javascript">
                    alert("Se elimino el cliente satisfactoriamente.");                
                </script>
                <?php
            }
            elseif ($bandera=='ExisteCliente') 
            {        
                ?>
                <script type="text/javascript">
                    alert("Este cliente ya existe");                
                </script>
                <?php    
            }
            elseif ($bandera=='SinPermisos') 
            {
                ?>
                <script type="text/javascript">
                    alert("Su usuario no posee permisos para esta acci&oacute;n.");                                
                </script>
                <?php
            }
            elseif ($bandera=='contratosAsociados') 
            {
                ?>
                <script type="text/javascript">
                    alert("Este cliente tiene contratos asociados.");                                
                </script>
                <?php
            }
            elseif ($bandera=='formatosAsociados') 
            {
                ?>
                <script type="text/javascript">
                    alert("Este cliente tiene formatos asociados.");                                
                </script>
                <?php
            }
            elseif ($bandera=='ExisteClienteAX') 
            {        
                ?>
                <script type="text/javascript">
                    alert("El nombre del cliente no corresponde al código ingresado.");                
                </script>
                <?php    
            }
        }
        catch (Exception $e) 
        {
            echo 'Excepción capturada: ',  $e->getMessage(), "\n";
        }
    }
    
    function modificarClientes() 
    {
        require_once 'dataControlador.php';
        require '../modelos/clientesModelo.php';        
        require_once('FirePHPCore/FirePHP.class.php');                                     
        $firephp = FirePHP::getInstance(true);
        if(validarPermisos('modificarClienteModelo'))
        {        
            $codigoCliente = $_POST['hddCodigoCliente'];
            $codigoCompania = $_POST['hddCodigoCompania'];            
            $firephp->log($codigoCompania, "companiaControlador");
            $nombreCliente = $_POST['hddNombreCliente'];
            $direccionEnvio = $_POST['hddDireccionEnvio'];
            $direccionPuerto = $_POST['hddDireccionPuerto'];
            $accion = 'modificarCliente';        
            require 'FacturasExportacion/agregarCliente.php';                                                                             
        }
        else
        {   
            $items = buscarClientes();
            $total_registros =sizeof($items);                 
            require 'GuiasEnvio/listarClientes.php';    
            mensajeConfirmacionClientes('SinPermisos');                  
        }                                 
    }               
    
    function direccionarAgregarCliente()
    {        
        require_once 'dataControlador.php';        
        require '../modelos/clientesModelo.php';                       
        if(validarPermisos('agregarClientes'))
        {
            $accion='agregarCliente';
            require 'FacturasExportacion/agregarCliente.php';  
        }        
        else
        {            
            $items = buscarClientes();                    
            $total_registros =sizeof($items);                    
            require 'FacturasExportacion/listarClientes.php';        
            mensajeConfirmacionClientes('SinPermisos'); 
        } 
        
        /*
        $accion='agregarCliente';
        require 'FacturasExportacion/agregarCliente.php';       */
    }
?>
